Practical Concurrent Unrolled Linked Lists Using Lazy Synchronization
نویسندگان
چکیده
Linked lists and other list-based sets are one of the most ubiquitous data structures in computer science. They are useful in their own right and are frequently used as building blocks in other data structures. A linked list can be “unrolled” to combine multiple keys in each node; this improves storage density and overall performance. This organization also allows an operation to skip over nodes which cannot contain a key of interest. This paper introduces a new high-performance concurrent unrolled linked list with a lazy synchronization strategy that allows wait-free read operations. Most write operations under this strategy can complete by locking a single node. Experiments show up to a 400% improvement over other concurrent list-based sets.
منابع مشابه
Proving Correctness of Concurrent Objects by Validating Linearization Points
In the recent years, several concurrent data-structures/objects have been proposed. These data-structures allow multiple threads/process to operate on them concurrently while maintaining consistency. By allowing multiple threads to operate on them simultaneously, these structures strive to increase parallelism. These structures typically involve the operating threads applying different fine-gra...
متن کاملImproving Functional Logic Programs by Difference-Lists
Modern multi-paradigm declarative languages integrate features from functional, logic, and concurrent programming. In this work, we consider the adaptation of the logic programming transformation based on the introduction of diierence-lists to an integrated setting. Unfortunately, the use of diierence-lists is impractical due to the absence of non-strict equality in lazy (call-by-name) language...
متن کاملTowards Scalable Synchronization on Multi-Cores
The shift of commodity hardware from singleto multi-core processors in the early 2000s compelled software developers to take advantage of the available parallelism of multi-cores. Unfortunately, only few—so-called embarrassingly parallel—applications can leverage this available parallelism in a straightforward manner. The remaining—non-embarrassingly parallel— applications require that their pr...
متن کاملLanguage Features for Re - use and Extensibility in Concurrent Object - Oriented Programming
We investigate and propose two major language features to realize and enhance extensibility and re-usability in concurrent object-oriented (OO) languages. Part 1 addresses inheritance in concurrent-OO languages: re-use of synchronization code in concurrent OO-languages has been considered di cult due to inheritance anomaly, which we analyze and categorize extensively, and minimize with our new ...
متن کاملLanguage Features for Re-use and Extensibility in Concurrent Object-oriented Programming Languages
We investigate and propose two major language features to realize and enhance extensibility and re-usability in concurrent object-oriented (OO) languages. Part 1 addresses inheritance in concurrent-OO languages: re-use of synchronization code in concurrent OO-languages has been considered di cult due to inheritance anomaly, which we analyze and categorize extensively, and minimize with our new ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014